package 进阶阶段;

public class demo05装箱与拆箱 {
    //基本类型与对应的包装类(引用数据类型)对象之间，来回转换的过程称为”装箱“与”拆箱“：
    //装箱：把基本类型转换为对应的包装类对象//对象new出来开辟空间,看起来像个箱子,装箱
    //拆箱：把包装类对象转换为对应的基本类型

    public static void main(String[] args) {
        //Java 5（JDK 1.5）之前版本
        Integer i = new Integer(666);//使用构造函数函数,装箱int-Integer,对象
        Integer iii = Integer.valueOf(666);//使用包装类中的valueOf方法,装箱

        int num = i.intValue();//拆箱,Integer-int,拆箱

        //Java 5（JDK 1.5）之后版本
        Integer j = 4;//自动装箱。相当于Integer j = Integer.valueOf(4);
        j = j + 5;//等号右边：将i对象转成基本数值(自动拆箱) j.intValue() + 5;//j=9;
        //加法运算完成后，再次装箱，把基本数值转成对象。自动装箱

        Integer i1 = new Integer(123);
        Integer i2 = new Integer(123);

        Integer i3 = 123;
        Integer i4 = Integer.valueOf(123);//使用包装类中的valueOf()方法装箱

        System.out.println(i1 == i2);
        System.out.println(i3 == i4);

        //除了Character类之外，其他所有包装类都具有parseXxx静态方法可以将字符串参数转换为对应的基本类型
        Long a = 123456L;
        Long b = Long.parseLong("123456");//Long类型转换成String类型
        System.out.println(a);
        System.out.println(b);
    }
}
